<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view' );
JLoader::register('SiteMapGenerator',JPATH_COMPONENT.DS.'helpers'.DS.'SiteMapGenerator.php');

class linioViewlinioimport extends JView
{	
	function display($tpl = null)
	{		
		$model   = $this->getModel();
		$country = $model->getParam('country','MX');
		$file='sitemap.xml';
		$path=JPATH_BASE.DS.$file;		
		$mensaje = $this->importCsvFile($country);
		$this->assignRef('mensaje',$mensaje);
		$aStdCategories = $model->getMenu($country);
		$sm = new SiteMapGenerator();
		$sm->setAStdCategories($aStdCategories);
		$this->saveSiteMap($sm->creteSiteMap(),$path);
		parent::display($tpl);
	}
	
	/**
	 *
	 * Recuperar el archivo CSV desde linio.
	 */
	private function importCsvFile($country){
		$mensaje = array();
		$confObject = JFactory::getApplication();
		$tmpPath = $confObject->getCfg('tmp_path');
		$model  = $this->getModel();
		$c = $model->getCountry($country);
		$csvfile = $tmpPath.DS.'linio_'.$c->country.'_'.date("Y-m-d").'.csv';
		$isFile = file_exists($csvfile);
		if(!$isFile){
			$isFile = $model->downloadCsvFile($c->urlcsvfile,$csvfile);
		}
		if ($isFile){
			$model->importCvsFile($csvfile,true);
			$mensaje   = $model->getMensaje();
			$mensaje[] = $model->optimizeTable('#__liniocsv');
			$mensaje[] = $model->optimizeTable('#__liniomenu');
		} else {
			$mensaje[] = "No fue posible recuperar el archivo de Linio.";
		}
		return print_r($mensaje,true);
	}
	
	/**
	 *
	 * Guardar el sitemap.xml a disco y mostrarlo a pantalla.
	 * @param $xml
	 * @param $path
	 */
	private function saveSiteMap($xml,$path){
		$fp = fopen($path,'w');
		fwrite($fp, $xml);
		fclose($fp);
	}
}